package com.lxd.sunso.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lxd.sunso.common.utils.PageUtils;
import com.lxd.sunso.product.entity.MachineEntity;
import com.lxd.sunso.product.vo.LaAndLoVo;
import com.lxd.sunso.product.vo.MachineNameAndIdVo;
import com.lxd.sunso.product.vo.MessageVo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;

/**
 * 
 *
 * @author lxd
 * @email sunlightcs@gmail.com
 * @date 2020-12-30 18:06:30
 */
public interface MachineService extends IService<MachineEntity> {


    PageUtils queryPage(Map<String, Object> params);

    PageUtils search(Map<String, Object> params);

    MachineEntity findById(Integer id);

    void newUpdate(MachineEntity machine, MultipartFile file);

    /**
     * 根据用户的ID获取可以选用的模板
     * @return
     */
    List<Long> findTemplateByCustomerId(Long id);

    int  saveAndset(MachineEntity machine);

    /**
     * 根据模板的Id获取设备在线的数量
     * @return
     */
    Long queryOnByMachineKind(Long id);


    /**
     * 根据模板的Id获取设备所有的数量
     * @return
     */
    Long queryNumByMachineKind(Long id);

    /**
     * 根据所给的设备型号的Id获取模板的Id
     * @return
     */
    List<Long> searchTemplateByKind(Long id);

    /**
     * 根据顾客的Id获取在线的设备
     * @return
     */
    Long queryOnByCustomer(Long id);

    /**
     *根据顾客的Id获取所有设备
     * @return
     */
    Long queryNumByCustomer(Long id);

    List<MachineEntity> searchBatchMchine(Map<String, Object> params);

    List<MessageVo> getCusMachine();

    List<MessageVo> getKindMachine();

    List<String> getEmail(String machineName);

    String updateHead(MultipartFile file);

    void delete(List<Long> asList);

    //获取设备对应的手机号码
    List<String> getPhone(String machineName);

    List<Object> getMachineNameAndId(Map<String, Object> params);

    List<LaAndLoVo> getLaAndLo(Map<String, Object> params);

    List<MessageVo> getCusMachineOn();

    List<MessageVo> getKindMachineAll();

    Map<String, Integer> getData();

    List<MachineNameAndIdVo> getOnlineMahcine();

    //开机时重置所有设备在线状态
    void setunOnline();

}

